package com.school.admin.common.utils;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;
import com.school.admin.common.handler.GlobalException;
import org.springframework.util.StringUtils;

import java.util.Date;

/**
 * @author ：sunpx
 * @date ：Created in 2021/8/11 23:05
 * @description：编号生成器
 * @modified By：
 * @version: $
 */
public class SerialNumberUtil {


    /**
     * 生成编号
     * @param head 编号开头
     * @param format 时间戳
     * @param extent 长度
     * @param information 关键
     * @return head+information+format+(小于extent的随机数字)
     */
    public static String serial(String head, String format, Integer extent, String information) {
        String result = head;
        if (StringUtils.isEmpty(information)) {
            information = "";
        }
        result += (information + DateUtil.format(new Date(), format));
        int i = extent - result.length();
        if (i < 0) {
            throw new GlobalException(50000, "传入参数有误");
        }
        return i == 0 ? result : result + RandomUtil.randomString("0123456789", i);
    }

}
